home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / include / net / if_ppp.h < prev    next >
C/C++ Source or Header  |  2009-10-07  |  7KB  |  170 lines

  1. /*    From: if_ppp.h,v 1.3 1995/06/12 11:36:50 paulus Exp */
  2.  
  3. /*
  4.  * if_ppp.h - Point-to-Point Protocol definitions.
  5.  *
  6.  * Copyright (c) 1989 Carnegie Mellon University. 
  7.  *
  8.  * Redistribution and use in source and binary forms, with or without
  9.  * modification, are permitted provided that the following conditions
  10.  * are met:
  11.  * 1. Redistributions of source code must retain the above copyright
  12.  *    notice, this list of conditions and the following disclaimer.
  13.  * 2. Redistributions in binary form must reproduce the above copyright
  14.  *    notice, this list of conditions and the following disclaimer in the
  15.  *    documentation and/or other materials provided with the distribution.
  16.  * 3. Neither the name of the University nor the names of its contributors
  17.  *    may be used to endorse or promote products derived from this software
  18.  *    without specific prior written permission.
  19.  *
  20.  * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY AND
  21.  * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
  22.  * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
  23.  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
  24.  * IN NO EVENT SHALL THE UNIVERSITY OR CONTRIBUTORS BE LIABLE FOR ANY
  25.  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  26.  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
  27.  * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  28.  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
  29.  * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
  30.  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
  31.  * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  32.  *
  33.  */
  34.  
  35. /*
  36.  *  ==FILEVERSION 960926==
  37.  *
  38.  *  NOTE TO MAINTAINERS:
  39.  *     If you modify this file at all, please set the above date.
  40.  *     if_ppp.h is shipped with a PPP distribution as well as with the kernel;
  41.  *     if everyone increases the FILEVERSION number above, then scripts
  42.  *     can do the right thing when deciding whether to install a new if_ppp.h
  43.  *     file.  Don't change the format of that line otherwise, so the
  44.  *     installation script can recognize it.
  45.  */
  46.  
  47.  
  48. #ifndef __NET_IF_PPP_H
  49. #define __NET_IF_PPP_H 1
  50.  
  51. #include <sys/types.h>
  52. #include <sys/cdefs.h>
  53.  
  54. #include <net/if.h>
  55. #include <sys/ioctl.h>
  56. #include <net/ppp_defs.h>
  57.  
  58. __BEGIN_DECLS
  59.  
  60. /*
  61.  * Packet sizes
  62.  */
  63.  
  64. #define    PPP_MTU        1500    /* Default MTU (size of Info field) */
  65. #define PPP_MAXMRU    65000    /* Largest MRU we allow */
  66. #define PPP_VERSION    "2.2.0"
  67. #define PPP_MAGIC    0x5002    /* Magic value for the ppp structure */
  68. #define PROTO_IPX    0x002b    /* protocol numbers */
  69. #define PROTO_DNA_RT    0x0027  /* DNA Routing */
  70.  
  71.  
  72. /*
  73.  * Bit definitions for flags.
  74.  */
  75.  
  76. #define SC_COMP_PROT    0x00000001    /* protocol compression (output) */
  77. #define SC_COMP_AC    0x00000002    /* header compression (output) */
  78. #define    SC_COMP_TCP    0x00000004    /* TCP (VJ) compression (output) */
  79. #define SC_NO_TCP_CCID    0x00000008    /* disable VJ connection-id comp. */
  80. #define SC_REJ_COMP_AC    0x00000010    /* reject adrs/ctrl comp. on input */
  81. #define SC_REJ_COMP_TCP    0x00000020    /* reject TCP (VJ) comp. on input */
  82. #define SC_CCP_OPEN    0x00000040    /* Look at CCP packets */
  83. #define SC_CCP_UP    0x00000080    /* May send/recv compressed packets */
  84. #define SC_ENABLE_IP    0x00000100    /* IP packets may be exchanged */
  85. #define SC_COMP_RUN    0x00001000    /* compressor has been inited */
  86. #define SC_DECOMP_RUN    0x00002000    /* decompressor has been inited */
  87. #define SC_DEBUG    0x00010000    /* enable debug messages */
  88. #define SC_LOG_INPKT    0x00020000    /* log contents of good pkts recvd */
  89. #define SC_LOG_OUTPKT    0x00040000    /* log contents of pkts sent */
  90. #define SC_LOG_RAWIN    0x00080000    /* log all chars received */
  91. #define SC_LOG_FLUSH    0x00100000    /* log all chars flushed */
  92. #define    SC_MASK        0x0fE0ffff    /* bits that user can change */
  93.  
  94. /* state bits */
  95. #define    SC_ESCAPED    0x80000000    /* saw a PPP_ESCAPE */
  96. #define    SC_FLUSH    0x40000000    /* flush input until next PPP_FLAG */
  97. #define SC_VJ_RESET    0x20000000    /* Need to reset the VJ decompressor */
  98. #define SC_XMIT_BUSY    0x10000000    /* ppp_write_wakeup is active */
  99. #define SC_RCV_ODDP    0x08000000    /* have rcvd char with odd parity */
  100. #define SC_RCV_EVNP    0x04000000    /* have rcvd char with even parity */
  101. #define SC_RCV_B7_1    0x02000000    /* have rcvd char with bit 7 = 1 */
  102. #define SC_RCV_B7_0    0x01000000    /* have rcvd char with bit 7 = 0 */
  103. #define SC_DC_FERROR    0x00800000    /* fatal decomp error detected */
  104. #define SC_DC_ERROR    0x00400000    /* non-fatal decomp error detected */
  105.  
  106. /*
  107.  * Ioctl definitions.
  108.  */
  109.  
  110. struct npioctl {
  111.     int        protocol;    /* PPP protocol, e.g. PPP_IP */
  112.     enum NPmode    mode;
  113. };
  114.  
  115. /* Structure describing a CCP configuration option, for PPPIOCSCOMPRESS */
  116. struct ppp_option_data {
  117.     u_int8_t  *ptr;
  118.     u_int32_t length;
  119.     int      transmit;
  120. };
  121.  
  122. struct ifpppstatsreq {
  123.   struct ifreq       b;
  124.   struct ppp_stats stats;            /* statistic information */
  125. };
  126.  
  127. struct ifpppcstatsreq {
  128.   struct ifreq        b;
  129.   struct ppp_comp_stats stats;
  130. };
  131.  
  132. #define ifr__name       b.ifr_ifrn.ifrn_name
  133. #define stats_ptr       b.ifr_ifru.ifru_data
  134.  
  135. /*
  136.  * Ioctl definitions.
  137.  */
  138.  
  139. #define    PPPIOCGFLAGS    _IOR('t', 90, int)    /* get configuration flags */
  140. #define    PPPIOCSFLAGS    _IOW('t', 89, int)    /* set configuration flags */
  141. #define    PPPIOCGASYNCMAP    _IOR('t', 88, int)    /* get async map */
  142. #define    PPPIOCSASYNCMAP    _IOW('t', 87, int)    /* set async map */
  143. #define    PPPIOCGUNIT    _IOR('t', 86, int)    /* get ppp unit number */
  144. #define    PPPIOCGRASYNCMAP _IOR('t', 85, int)    /* get receive async map */
  145. #define    PPPIOCSRASYNCMAP _IOW('t', 84, int)    /* set receive async map */
  146. #define    PPPIOCGMRU    _IOR('t', 83, int)    /* get max receive unit */
  147. #define    PPPIOCSMRU    _IOW('t', 82, int)    /* set max receive unit */
  148. #define    PPPIOCSMAXCID    _IOW('t', 81, int)    /* set VJ max slot ID */
  149. #define PPPIOCGXASYNCMAP _IOR('t', 80, ext_accm) /* get extended ACCM */
  150. #define PPPIOCSXASYNCMAP _IOW('t', 79, ext_accm) /* set extended ACCM */
  151. #define PPPIOCXFERUNIT    _IO('t', 78)        /* transfer PPP unit */
  152. #define PPPIOCSCOMPRESS    _IOW('t', 77, struct ppp_option_data)
  153. #define PPPIOCGNPMODE    _IOWR('t', 76, struct npioctl) /* get NP mode */
  154. #define PPPIOCSNPMODE    _IOW('t', 75, struct npioctl)  /* set NP mode */
  155. #define PPPIOCGDEBUG    _IOR('t', 65, int)    /* Read debug level */
  156. #define PPPIOCSDEBUG    _IOW('t', 64, int)    /* Set debug level */
  157. #define PPPIOCGIDLE    _IOR('t', 63, struct ppp_idle) /* get idle time */
  158.  
  159. #define SIOCGPPPSTATS   (SIOCDEVPRIVATE + 0)
  160. #define SIOCGPPPVER     (SIOCDEVPRIVATE + 1)  /* NEVER change this!! */
  161. #define SIOCGPPPCSTATS  (SIOCDEVPRIVATE + 2)
  162.  
  163. #if !defined(ifr_mtu)
  164. #define ifr_mtu    ifr_ifru.ifru_metric
  165. #endif
  166.  
  167. __END_DECLS
  168.  
  169. #endif /* net/if_ppp.h */
  170.